package ar.com.cema.methodology.analyzer.services;


import java.util.Collection;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import ar.com.cema.methodology.analyzer.model.Variable;
import ar.com.cema.methodology.analyzer.services.beans.MethodologyUsageReport;
import ar.com.cema.methodology.analyzer.services.beans.ProjectConfiguration;

@Service("methodologyUsageService")
public interface MethodologyUsageService {

	@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
	Collection<Variable> listVariables();

	@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
	MethodologyUsageReport generateReportFor(ProjectConfiguration projectConfiguration);
}